查看原文
其他

谷歌称 Edge 浏览器的保护机制 ACG 不安全

Tom Spring 代码卫士 2022-04-06

 聚焦源代码安全,网罗国内外最新资讯!

翻译:360代码卫士团队


谷歌 Project Zero 研究发现,微软去年推出的 Edge 浏览器安全保护机制 ACG Arbitrary Code Guard)并不安全。

ACG 被指无法阻止高阶攻击

上周四,Project Zero 团队的研究员 Ivan Fratric 发布一份长达31页的白皮书指出,微软在 Edge 浏览器中部署的 ACG 缓解功能并不足以阻止“高阶攻击者逃避浏览器沙箱以及发动其它攻击”。

微软在2017年“Windows 10 创意者更新 (Windows 10 Creator Update)”中推出了 ACG 功能。ACG 旨在有效地破坏攻击者用于攻击浏览器内存的典型的基于浏览器的利用链。ACG 和之前存在的缓解技术“代码完整性保护 (Code Integrity Guard, CIG)”能阻止未签名以及签名不正确的代码在 Edge 浏览器中加载。

2月,谷歌 Project Zero 团队的研究员率先暴露了一种缓解绕过技术,它可导致高阶攻击者绕过微软的 ACG 措施。这项研究批评了微软实现其 ACG 缓解的方法以及微软如何通过避开 Edge 的即时 (Just-in-Time, JIT) 编译器避免浏览器性能受影响的做法。JIT 进程将 JavaScript 编译为原生代码并将其映射到请求的内容进程中。

在 Edge 浏览器中,微软将 JIT 功能迁移到在隔离沙箱中运行的单独进程中,从而避免浏览器性能受影响。

Fratric 在周四发布的报告中指出,“ACG 确实成功地实现了阻止可执行内存被分配和修改的目的。然而,由于 (Control Flow Guard)、ACG 和 CIG 相互依赖以及微软 Windows 中存在的 CFG 缺点,单靠 ACG 不足以阻止高阶攻击者逃离浏览器的沙箱并发动其它攻击。”

谷歌发布更新报告,串联起早在谷歌2月发布的报告中就存在的多种缓解绕过问题。谷歌在报告中还深入探索了谷歌绕过机制的运作原理。

微软已解决某些 JIT 服务器问题

2月,微软无法在谷歌规定的90天披露日期内修复问题后,Fratric 发布了首份研究报告。

微软发表声明称,利用 ACG 的高阶攻击者可能已经获得“某些能力”,因此降低了 ACG 缓解措施遭暴露的风险。如研究人员所指出的那样,这种技术假设潜在攻击者“已经通过另外一种方法获得某些能力”。

谷歌在 PoC 攻击中确实假设攻击者已经“在浏览器内容进程中获得执行任意代码的某些能力”。白皮书中并未说明这些能力是什么。谷歌还表示,首份报告发出后,微软已解决了一些不明确的 JIT 服务器问题。

尽管修复方案已发布,但 Fratric 仍然指出,在 Edge 浏览器中部署 ACG 可导致 CFG 缓解功能易遭攻击。CFG 是一种经优化的安全功能,旨在解决基于浏览器的内存损坏漏洞问题。

Fratric 表示,“目前因为存在很多已知的绕过问题,因此绕过 Windows 中的 CFG 并非难事。然而,如果微软能够修复所有已知的 CFG 弱点问题,包括添加回流保护措施等,这种状况可能会在接下来的几年中得到改善。由于微软已表示出这么做的欲望,因此我们认为这是他们的长期计划。”

其它浏览器或也存在类似问题

Fractric 还表示,虽然自己的研究关注的是微软 Edge 浏览器,但其它浏览器厂商实现“进程外 JIT”时也会遇到类似问题。

他指出,“除了 CFG 的问题外,ACG 最脆弱的地方在于 JIT 服务器实现,它暴露了多种问题。虽然实现方法才推出不久,但预测可能会出现某些问题,其中主要的问题是内容进程和 JIT 进程之间的安全边界并未正确执行。”




关联阅读

微软拒绝修复Edge浏览器中的内容安全策略绕过问题


原文链接

https://threatpost.com/google-project-zero-calls-windows-10-edge-defense-acg-flawed/131931/



本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存